1. Field of the Invention
The present invention relates generally to a system and method for motion control of a humanoid robot, and more particularly, to a system and method for motion control of a humanoid robot that allow a user to intuitively control motion of arms and legs of the humanoid robot in real time, without a separate expensive device, regardless of distance from the robot.
2. Description of the Related Art
There have been recent developments in fields that include practical robots that act as partners to humans and assist in daily life, i.e., that assist in various daily human activities outside of the home. Unlike industrial robots, practical robots move like humans in human living environments, are fashioned after humans, and thus, are referred to as humanoid robots (hereinafter, referred to simply as “robots”).
Like humans, robots generally walk on two legs (or two-wheels) and include a plurality of joints and drive motors for operating hands, arms, neck, legs, etc. For example, a humanoid robot dubbed HUBO, which was developed by the Korea Advanced Institute of Science and Technology (KAIST) in December of 2004, includes 41 joint drive motors to operate respective joints.
In general, the drive motors of the robot are independently operated. In order to control the drive motors, the robot includes a plurality of motor drivers for controlling at least one motor. The motor drivers are controlled by a computer installed inside or outside of the robot.
Conventional methods of operating robot arms may be generally classified into methods of reflecting movement of a user through a separate device and methods of calculating angles of joints of the robot arms.
First, the methods of reflecting movement of a user through a separate device may be classified into methods of reflecting movement of a user in real time using a haptic interface and methods of reflecting movement of a user using a motion capture device.
In the methods using a haptic interface, a device for detecting movement of joints in a user's body is attached to the user and corresponding motion signals are transmitted to the robot. These methods have the advantage of enabling movement of the user to be translated directly into motion of the robot, but they also have the disadvantage of employing heavy, bulky devices.
In the methods using motion capture devices, markers are attached to the user's body and movement of the user is recognized and recorded using sensors for sensing the markers. These methods may be classified into mechanical methods using mechanical sensors, such as resistors, etc., magnetic methods using magnetism, optical methods using cameras, etc., and so on.
The methods using motion capture devices have the advantage of enabling operation of robot arms through movement of the user in real time, but they also have the disadvantage of employing expensive equipment.
The methods of moving robots using separate devices are problematic in that a user must wear separate devices such as haptic interfaces and motion capture devices, and expensive equipment for detecting the user's movement must be used.
The methods of calculating angles of robot arm joints may be classified into a method of previously inputting routes according to robot arm motion, and a method using motions of end effectors of robot arms.
The method of inputting routes according to robot arm motion involves previously inputting routes into a control computer and calculating angles of joints of the robot arms according to inverse kinematics in real time, thereby controlling the drive motors.
Kinematics is used to calculate positions in spaces at ends of connection structures using angles of joints of the connection structures. Inverse kinematics is used to calculate angles of joints in reverse sequence, in which joint angles to arrive at end effectors of the structures are calculated when the end effectors are provided.
However, since a user cannot move the end effectors of the robot arms to desired positions, the user cannot, for example, handle an object located at a desired position using the robot arms.
The method using motions of end effectors of robot arms is used in the case of a user handling an object using robot arms. The robot arms are moved to desired positions within their motion range by adjusting angles of their joints, i.e., by controlling only rotation of the drive motors.
However, since the user cannot move end effectors of the robot arms to desired positions, the user cannot, for example, handle an object located at a desired position using the robot arms.
FIG. 1 is a view illustrating a motion route of a robot arm to describe movement of the robot arm, and FIG. 2 is a view showing parameters for controlling robot arm motion.
Referring to FIG. 1, in order to control motion of a robot arm, i.e., movement of an end effector from A to B, angles of a plurality of joints (for example, three joints) of the robot arm are calculated and drive motors of the joints are controlled to vary angles of the joints so that the end effector of the robot arm moves from A to B.
Here, movement of the robot arm has six degrees of freedom (three degrees of freedom in position and three degrees of freedom in rotation), as shown in FIG. 2. Therefore, in order to move the robot arm to a desired position, six drive motors are needed.
In FIG. 1, when the end effector of the robot arm is to be moved from A to B, angles of joints to be varied must be calculated to move the end effector from A to B. The angles of the joints to be varied are calculated using inverse kinematics.
While the angles of the joints can be calculated numerically and analytically using inverse kinematics, the process of obtaining a solution using inverse kinematics is generally complicated and requires a large amount of calculations.
A detailed description of inverse kinematics is provided in “Introduction to Robotics: Mechanics and Control,” written by John J. Craig.
As shown in FIG. 2, since three parameters of linear movement and three parameters of rotational movement are needed in order to move the end effector of the robot arm, six angles of the joints are varied to move the end effector of the robot arm to a desired position. Angles of the joints according to time can be recognized while the end effector of the robot arm moves from a start point A to a desired point B.
Further, the control computer transmits calculated variation in angle of the joints to the drive motors for controlling angles of the joints of the robot arm to move the robot arm.
As described above, while the method of calculating angles of the joints of the robot arm can be used to move the end effector of the robot arm to a desired position, it is impossible to recognize a desired position in an actual space as a point in a three-dimensional space to operate the robot arm in real time.
While the conventional method of controlling motion of a robot can reflect a user's motion to control a robot's motion in real time using a separate device, since the separate device is complex and very expensive it is difficult to apply in daily life.
In addition, in the method of calculating joint angles of a robot, a user must reflect variation in angle according to motion of each joint of the robot. However, the result is not intuitive and cannot be readily expected, and a large amount of information must be input by the user, which makes it difficult to operate the robot in real time.